Google在其雲端建置服務Cloud Build加入新的私有池(Private Pool)功能,讓用戶可以在私有網路中使用無伺服器建置環境,透過整合像是GitHub Enterprise等私有程式碼儲存庫,使用託管在私有網路中的儲存庫,觸發CI/CD和DevOps工作流程
#看更多 https://www.ithome.com.tw/news/145952
「github private」的推薦目錄:
- 關於github private 在 iThome Facebook 的最佳貼文
- 關於github private 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於github private 在 Kewang 的資訊進化論 Facebook 的最佳解答
- 關於github private 在 開發者新年大福音!GitHub 宣布private repositories 開放免費 ... 的評價
- 關於github private 在 Pricing · Plans for every developer - GitHub 的評價
- 關於github private 在 微軟送禮不手軟,GitHub 私人儲存庫免費用! - TechNews ... 的評價
- 關於github private 在 New year, new GitHub: Announcing unlimited free private ... 的評價
- 關於github private 在 GitHub makes private repos free to teams | InfoWorld 的評價
- 關於github private 在 Want a private GitHub repository? It comes with a catch - The ... 的評價
- 關於github private 在 How to get Clone a private Github repo!? - DEV Community 的評價
- 關於github private 在 How can I give access to a private GitHub repository? - Stack ... 的評價
- 關於github private 在 How can I give access to a private GitHub repository? - Stack ... 的評價
- 關於github private 在 【工程師大禮包】GitHub 宣布:「免費開放」所有的核心功能 的評價
- 關於github private 在 Accessing GitHub from a build via SSH keys - Google Cloud 的評價
- 關於github private 在 All GitHub users can keep their code private | Engadget 的評價
- 關於github private 在 How to deploy from a private github repository? | DigitalOcean 的評價
- 關於github private 在 GitHub Free users now get unlimited private repositories 的評價
- 關於github private 在 GitHub offers free private repositories for unlimited ... 的評價
- 關於github private 在 Private Dependencies GitHub - Travis CI Docs 的評價
- 關於github private 在 GitHub makes unlimited private repositories free for all 的評價
- 關於github private 在 Should I use GitHub's new private repositories? 的評價
- 關於github private 在 M$ 收購Github 後的善舉:免費Private repositories - Mr. 沙先生 的評價
- 關於github private 在 How to make public private repository in github.com 的評價
- 關於github private 在 How to make public private repository in github.com 的評價
- 關於github private 在 利用Github push 驅動Jenkins 執行repo 指令[Private] - 進度條 的評價
- 關於github private 在 GitHub 解除使用者私有儲存庫協作人數限制 - Tsung's Blog 的評價
- 關於github private 在 #1234531 private keys exposed on the GitHub repository 的評價
- 關於github private 在 Go Module with private github repository - Jason Lee 的評價
- 關於github private 在 Make a GitHub repo private - GOV.UK Developer docs 的評價
- 關於github private 在 colab-github-demo.ipynb - Colaboratory - Google 的評價
- 關於github private 在 How to Setup Passwordless Authentication to GitHub Private 的評價
- 關於github private 在 Enabling use of private packages on github.com for ... 的評價
- 關於github private 在 Private Assignments - MakeCode 的評價
- 關於github private 在 How can I build from a private repository on GitHub? 的評價
- 關於github private 在 How to Import a Private Git Repo from Github - Assembla Help ... 的評價
- 關於github private 在 Who can see activity (commits, issues, etc.) in a GitHub private ... 的評價
- 關於github private 在 Add Collaborators in the Private Repository in GitHub: Step by ... 的評價
- 關於github private 在 Keeping Parts of Your Codebase Private on GitHub - 24 Ways 的評價
- 關於github private 在 flux bootstrap github 的評價
- 關於github private 在 Private npm packages in Github package registry - Level Up ... 的評價
- 關於github private 在 Breaking GitHub Private Pages for $35k - Robert Chen 的評價
- 關於github private 在 How to Protect Your Private Email Addresses in Git & Github? 的評價
- 關於github private 在 Secretive type? GitHub unveils free private repositories for all 的評價
- 關於github private 在 This is the final straw, evil Microsoft. Making private GitHub ... 的評價
- 關於github private 在 Will a private GitHub repository always stay private? - Web ... 的評價
- 關於github private 在 Will a private GitHub repository always stay private? - Web ... 的評價
- 關於github private 在 Building private GitHub repositories with sub-modules 的評價
- 關於github private 在 Using GitHub with RStudio – Information Technology - St. Olaf ... 的評價
- 關於github private 在 How to request new GitHub user access or repository creation 的評價
- 關於github private 在 轉移Github 上的Private Repository 到BitBucket … - 小惡魔 的評價
- 關於github private 在 GitHub Makes Private Repositories Free for Unlimited Users 的評價
- 關於github private 在 Private Repos inside an Organization - GitHub Community 的評價
- 關於github private 在 Free Alternatives to GitHub for Private Git Hosting - Sean C ... 的評價
- 關於github private 在 Sourcetree not showing private GitHub repos - Atlassian ... 的評價
- 關於github private 在 Any limitation with Github FREE Private Repo ? - Hashnode 的評價
- 關於github private 在 Heroku Button now works with private GitHub repos 的評價
- 關於github private 在 GitHub Follows GitLab and Offers Unlimited Private ... 的評價
- 關於github private 在 Hosting helm private repository from Github - SoftwareMill Blog 的評價
- 關於github private 在 Why Private GitHub Issues Are Bad - Blog - Martin Bean 的評價
- 關於github private 在 GitLab vs GitHub: Which is right for you - Spectral 的評價
- 關於github private 在 Use private repo to publish websites with github pages. 的評價
- 關於github private 在 GitHub Free 開放Private Repository - Gea-Suan Lin's BLOG 的評價
- 關於github private 在 Hacker gains access to a small number of Microsoft's private ... 的評價
- 關於github private 在 GitHub now gives free users unlimited private repositories 的評價
- 關於github private 在 使用GitHub 免費製作個人網站- 為你自己學Git | 高見龍 的評價
- 關於github private 在 How to build an OpenShift application from a private GitHub ... 的評價
- 關於github private 在 Microsoft's GitHub account hacked, private repositories stolen 的評價
- 關於github private 在 微軟送大禮!GitHub 即日起「免費」開放用戶儲存私人專案 的評價
- 關於github private 在 GitHub now offers unlimited free private repositories with up to ... 的評價
- 關於github private 在 Two ways to deploy a public GitHub Pages site from a private ... 的評價
- 關於github private 在 Why is my Github repo not showing up? - Snyk Support Portal 的評價
- 關於github private 在 Private GitHub Repository | Katacoda Documentation 的評價
- 關於github private 在 GitHub Leak: GitHub secrets best practices - GitGuardian Blog 的評價
- 關於github private 在 6 places to host your git repository | Opensource.com 的評價
- 關於github private 在 GitHub - Wikipedia 的評價
- 關於github private 在 Integrating a private registry with GitHub Actions | Bytesafe 的評價
- 關於github private 在 Github codespaces personal 的評價
- 關於github private 在 Extract data from Private Github Repository with REST API 的評價
- 關於github private 在 Collaborating – Version Control with Git - Our Lessons 的評價
- 關於github private 在 GitHub Unifies Enterprise Offering, Unveils Unlimited Free ... 的評價
- 關於github private 在 github_repository | Resources | integrations/github - Terraform ... 的評價
- 關於github private 在 Hacker gets access to private GitHub repositories through a ... 的評價
- 關於github private 在 GitHub makes private repositories free, team plans slashed 的評價
- 關於github private 在 Is it possible to download packages from my private GitHub ... 的評價
- 關於github private 在 GitHub Opens Free Plan to Unlimited Collaborators on Private ... 的評價
- 關於github private 在 Handling authentication with Composer and private Github ... 的評價
- 關於github private 在 How to fetch a private dependency on GitHub Actions? - Elixir ... 的評價
- 關於github private 在 Is it possible to connect to private Github repositories using ... 的評價
- 關於github private 在 Bitbucket vs GitHub: Which Code Repository Is Better for Your ... 的評價
- 關於github private 在 Is GitHub Package Registry the npm Killer? | Okta Developer 的評價
- 關於github private 在 怎樣把GitHub上的Private Gist變成Public狀態 - 嘟油儂 的評價
github private 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] ZKP 與智能合約的開發入門
✍️ Johnson
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
這篇文章將以程式碼範例,說明 Zero Knowledge Proofs 與智能合約的結合,能夠為以太坊的生態系帶來什麼創新的應用。
本文為 Tornado Cash 研究系列的 Part 2,本系列以 tornado-core 為教材,學習開發 ZKP 的應用,另兩篇為:
Part 1:Merkle Tree in JavaScript
Part 3:Tornado Cash 實例解析
Special thanks to C.C. Liang for review and enlightenment.
近十年來最強大的密碼學科技可能就是零知識證明,或稱 zk-SNARKs (zero knowledge succinct arguments of knowledge)。
zk-SNARKs 可以將某個能得出特定結果 (output) 的計算過程 (computation),產出一個證明,而儘管計算過程可能非常耗時,這個證明卻可以快速的被驗證。
此外,零知識證明的額外特色是:你可以在不告訴對方輸入值 (input) 的情況下,證明你確實經過了某個計算過程並得到了結果。
上述來自 Vitalik’s An approximate introduction to how zk-SNARKs are possible 文章的首段,該文說是給具有 “medium level” 數學程度的人解釋 zk-SNARKs 的運作原理。(可惜我還是看不懂 QQ)
本文則是從零知識證明 (ZKP) 應用開發的角度,結合電路 (circuit) 與智能合約的程式碼來說明 ZKP 可以為既有的以太坊智能合約帶來什麼創新的突破。
基本上可以謹記兩點 ZKP 帶來的效果:
1. 擴容:鏈下計算的功能。
2. 隱私:隱藏秘密的功能。
WithoutZK.sol
首先,讓我們先來看一段沒有任何 ZKP 的智能合約:
這份合約的主軸在 process(),我們向它輸入一個秘密值 secret,經過一段計算過程後會與 answer 比對,如果驗證成功就會改寫變數 greeting 為 “answer to the ultimate question of life, the universe, and everything”。
Computation
而計算過程是一個簡單的函式:f(x) = x**2 + 6。
我們可以輕易推出秘密就是 42。
這個計算過程有很多可能的輸入值 (input) 與輸出值 (output):
f(2) = 10
f(3) = 15
f(4) = 22
…
但是能通過驗證的只有當輸出值和我們存放在合約的資料 answer 一樣時,才會驗證成功,並執行 process 的動作。
可以看到有一個 calculate 函式,說明這份合約在鏈上進行的計算,以及 process 需要輸入參數 _secret,而我們知道合約上所有交易都是公開的,所以這個 _secret 可以輕易在 etherscan 上被看到。
從這個簡單的合約中我們看到 ZKP 可以解決的兩個痛點:鏈下計算與隱藏秘密。
Circuits
接下來我們就改寫這份合約,加入 ZKP 的電路語言 circom,使用者就能用他的 secret 在鏈下進行計算後產生一個 proof,這 proof 就不會揭露有關 secret 的資訊,同時證明了當 secret 丟入 f(x) = x**2 + 6 的計算過程後會得出 1770 的結果 (output),把這個 proof 丟入 process 的參數中,經過 Verifier 的驗證即可執行 process 的內容。
有關電路 circuits 的環境配置,可以參考 ZKP Hello World,這裡我們就先跳過去,直接來看 circom 的程式碼:
template Square() { signal input in; signal output out; out <== in * in;}template Add() { signal input in; signal output out; out <== in + 6;}template Calculator() { signal private input secret; signal output out; component square = Square(); component add = Add(); square.in <== secret; add.in <== square.out; out <== add.out;}component main = Calculator();
這段就是 f(x) = x**2 + 6 在 circom 上的寫法,可能需要時間去感受一下。
ZK.sol
circom 寫好後,可以產生一個 Verifier.sol 的合約,這個合約會有一個函式 verifyProof,於是我們把上方的合約改寫成使用 ZKP 的樣子:
我們可以發現 ZK 合約少了 calculate 函式,顯然 f(x) = x**2 + 6 已經被我們寫到電路上了。
snarkjs
產生證明的程式碼以 javascript 寫成如下:
let { proof, publicSignals } = await groth16.fullProve(input, wasmPath, zkeyPath);
於是提交 proof 給合約,完成驗證,達到所謂鏈下計算的功能。
最後讓我們完整看一段 javascript 的單元測試,使用 snarkjs 來產生證明,對合約的 process 進行測試:
對合約來說, secret = 42 是完全不知情的,因此隱藏了秘密。
publicSignals
之前不太清楚 publicSignals 的用意,因此在這裡特別說明一下。
基本上在產生證明的同時,也會隨帶產生這個 circom 所有的 public 值,也就是 publicSignals,如下:
let { proof, publicSignals } = await groth16.fullProve(input, wasmPath, zkeyPath);
在我們的例子中 publicSignals 只有一個,就是 1770。
而 verifyProof 要輸入的參數除了 proof 之外,也要填入 public 值,簡單來說會是:
const isValid = verifyProof(proof, publicSignals);
問題來了,我們在設計應用邏輯時,當使用者要提交參數進行驗證的時候,publicSignals 會是由「使用者」填入嗎?或者是說,儘管是使用者填入,那它需不需要先經過檢查,才可以填入 verifyProof?
關鍵在於我們的合約上存有一筆資料:answer = 1770
回頭看合約上的 process 在進行 verifyProof 之前,必須要檢查 isAnswer(publicSignals[0]):
想想要是沒有檢查 isAnswer,這份合約會發生什麼事情?
我們的應用邏輯就會變得毫無意義,因為少了要驗證的答案,就只是完成計算 f(42) = 1770,那麼不論是 f(1) = 7 或 f(2) = 10,使用者都可以自己產生證明與結果,自己把 proof 和 publicSignals 填入 verifyProof 的參數中,都會通過驗證。
至此可以看出,ZKP 只有把「計算過程」抽離到鏈下的電路,計算後的結果仍需要與鏈上既有的資料進行比對與確認後,才能算是有效的應用 ZKP。
應用邏輯的開發
本文主要談到的是 zk-SNARKs 上層應用邏輯的開發,關於 ZKP 的底層邏輯如上述使用的 groth16 或其他如 plonk 是本文打算忽略掉的部分。
從上述的例子可以看到,即使我們努力用 circom 實作藏住 secret,但由於計算過程太過簡單,只有 f(x) = x**2+6,輕易就能從 answer 反推出我們的 secret 是 42,因此在應用邏輯的開發上,也必須注意 circom 的設計可能出了問題,導致私密訊息容易外洩,那儘管使用再強的 ZKP 底層邏輯,在應用邏輯上有漏洞,也沒辦法達到隱藏秘密的效果。
此外,在看 circom 的程式碼時,可以關注最後一個 template 的 private 與 public 值分別是什麼。以本文的 Calculator 為例,private 值有 secret,public 值有 out。
另外補充:
如果有個 signal input 但它不是 private input,就會被歸類為 public。
一個 circuit 至少會有一個 public,因為計算過程一定會有一個結果。
最後,在開發的過程中我會用 javascript 先實作計算過程,也可以順便產出 input.json,然後再用 circom 語言把計算過程實現,產生 proof 和 public 後,再去對照所有 public 值和 private 值,確認是不是符合電路計算後所要的結果,也就是比較 javascript 算出來的和 circom 算出來的一不一樣,如果不一樣就能確定程式碼是有 bug 的。
參考範例:https://github.com/chnejohnson/circom-playground
總結
本文的程式碼展現 ZKP 可以做到鏈下計算與隱藏秘密的功能,在真實專案中,可想而知電路的計算過程不會這麼單純。
會出現在真實專案中的計算像是 hash function,複雜一點會加入 Merkle Tree,或是電子簽章 EdDSA,於是就能產生更完整的應用如 Layer 2 擴容方案之一的 ZK Rollup,或是做到匿名交易的 Tornado Cash。
本文原始碼:https://github.com/chnejohnson/mini-zkp
下篇文章就來分享 Tornado Cash 是如何利用 ZKP 達成匿名交易的!
參考資料
概念介紹
Cryptography Playground
zk-SNARKs-Explainer
神奇的零知識證明!既能保守秘密,又讓別人信你!
認識零知識證明 — COSCUP 2019 | Youtube
應用零知識證明 — COSCUP 2020 | Youtube
ZK Rollup
動手實做零知識 — circom — Kimi
ZK-Rollup 开发经验分享 Part I — Fluidex
ZkRollup Tutorial
ZK Rollup & Optimistic Rollup — Kimi Wu | Medium
Circom
circom/TUTORIAL.md at master · iden3/circom · GitHub
ZKP Hello World
其他
深入瞭解 zk-SNARKs
瞭解神秘的 ZK-STARKs
zk-SNARKs和zk-STARKs解釋 | Binance Academy
[ZKP 讀書會] MACI
Semaphore
Zero-knowledge Virtual Machines, the Polaris License, and Vendor Lock-in | by Koh Wei Jie
Introduction & Evolution of ZK Ecosystem — YouTube
The Limitations of Privacy — Barry Whitehat — YouTube
Introduction to Zero Knowledge Proofs — Elena Nadolinski
ZKP 與智能合約的開發入門 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
github private 在 Kewang 的資訊進化論 Facebook 的最佳解答
小編好久沒發文了 Orz,來發個近日資訊業最大條新聞跟個人看法
---
GitHub 被微軟買走之後做了蠻多事情,像是前幾個月 npm 被 GitHub 買下來,但這其實也不意外,因為這兩年 GitHub 在 JavaScript 的支援度就愈來愈高,不止可以在網頁上面做 audit,也可以做 navigate,功能蠻齊全的。被買下來之後,之後可以期待在 GitHub 上面直接 deploy npm 模組了。
另外一個就是這次的 private repo 完全免費了,小編記得之前 private repo 免費好像有些限制,像是只限 5 人的樣子,但現在可說是完全不限,有富爸爸果然是不一樣!
---
再來說一下個人選擇,如果是可以給一般人看的內容,小編一定是用 GitHub,畢竟資訊人誰沒有一個 GitHub 帳號呢?然後個人接案因為不能公開原始碼,所以當然放在 GitLab (以前是 Bitbucket)。現在 Funliday 的 git repo 因為原始碼不能公開,當然也是放在 GitLab。
然後因為 Funliday server 是放在 Heroku 上面,Heroku 上面有個功能可以直接結合 GitHub 的 push 之後 deploy,但因為 Funliday 用的是 GitLab,所以沒辦法直接用這功能,只能繞個彎改用 dpl,把 GitLab 整合進 Heroku 裡。
但也因為用了 GitLab 之後,才知道它的功能比 GitHub 多太多,對一般公司所需要的權限控制,小編是覺得比 GitHub 完整。然後對於 CI/CD 的支援度也很強大,現在還支援 build docker image 的功能。
---
不過當 GitHub private 免費之後,對於沒有依賴 GitLab 權限控制或 container 功能的使用者,還蠻有可能移回 GitHub 的,畢竟能在同一個 hosting 操作當然比較方便。所以以後小編開 repo 的考量,可能就不再是 private 或 public 了,而是在於 deploy 的方便性,或是能不能 build 出 artifact 了。
• GitLab 自評與 GitHub 的差異:https://about.gitlab.com/blog/2020/04/14/github-free-for-teams
#github #gitlab
github private 在 Pricing · Plans for every developer - GitHub 的推薦與評價
GitHub Actions and Packages are free for public repositories and packages on all plans, while private repositories and packages receive a set amount of free ... ... <看更多>
github private 在 微軟送禮不手軟,GitHub 私人儲存庫免費用! - TechNews ... 的推薦與評價
不過私人儲存庫僅開放3 位協作開發者,如果需要超過3 個協作開發者還是要花錢升級為專業版。 Use private repositories with three of your closest ... ... <看更多>
github private 在 開發者新年大福音!GitHub 宣布private repositories 開放免費 ... 的推薦與評價
跨入2019 年,GitHub 就在官方部落格宣布了兩項更新,首先是將過去按照空間大小收費的private repositories 功能提供給免費版用戶使用。 ... <看更多>